﻿namespace MugenMvvmToolkit.Interfaces
{
    /// <summary>
    ///     Represents the interface that used to start a mvvm-application.
    /// </summary>
    public interface IBootstrapper
    {
        /// <summary>
        ///     Gets the initialized state of the current bootstrapper.
        /// </summary>
        bool IsStarted { get; }

        /// <summary>
        ///     Gets the root <see cref="IIocAdapter" />.
        /// </summary>
        IIocAdapter IocAdapter { get; }

        /// <summary>
        ///     Starts the current <see cref="IBootstrapper" />.
        /// </summary>
        void Start();

        /// <summary>
        ///     Stops the current <see cref="IBootstrapper" />.
        /// </summary>
        void Stop();
    }
}